home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Floppyshop 2
/
Floppyshop - 2.zip
/
Floppyshop - 2.iso
/
art&graf.ix
/
art-0074
/
mikrodrw
/
part_4.lst
< prev
Wrap
File List
|
1997-04-16
|
3KB
|
92 lines
'
' Mikrodraw
'
' Part 4
'
' Programmed by Konstantinos Lavassas
' January/February 1990
'
' Editing: Ulrich Hilgefort
'
' for: TOS - Magazine + Software for Atari ST and TT
'
' ----------------------------------------------------------------------------
'
' It is necessary to use either hcp_9 (for 24-Pin) or hcp_9a (for 9-Pin).
'
> PROCEDURE drucken
'
ALERT 1," | Hardcopy ? ",1," klar | nein",zz% ! Confirmation
IF zz%=2
GOTO end_druck
ENDIF
WHILE BIOS(8,0)=0 ! Test Parallel port
ALERT 3," | Drucker nicht bereit ! ",1,"nochmal|Abbruch",zz%
IF zz%=2 !
GOTO end_druck ! Abort
ENDIF
WEND
@vollbild ! Full screen
HIDEM ! Hide Mouse Pointer
IF me%=60 ! System hardcopy:
HARDCOPY ! HC execute
ENDIF
IF me%=59 ! 9-Pin-Print Routine
@hcp_9 ! execute
ENDIF
'
LPRINT CHR$(12) ! Eject page
'
SHOWM ! Mouse on again
end_druck: ! Abort printing
RETURN ! Go back
'
> PROCEDURE hcp_9
'
adr=XBIOS(3)
drucker_init$=CHR$(27)+"l"+CHR$(20) ! Left edge or similar
start$=CHR$(27)+"*"+CHR$(39)+CHR$(144)+CHR$(1) ! Printer driver
' ESC * ' = 399 ! (see text)
'
vorschub$=CHR$(27)+"J"+CHR$(23)+CHR$(13) ! Blank line
'
OPEN "O",#2,"LST:" ! Output to Printer
PRINT #2,drucker_init$;
PRINT #2,CHR$(13) ! Blank line
FOR i%=0 TO 78 STEP 3 ! Divide up
PRINT #2,start$;
FOR j%=399 TO 0 STEP -1 ! All lines
date%=adr+(j%*80)++i% ! Fetch Data
PRINT #2,CHR$(PEEK(date%+0)); !
PRINT #2,CHR$(PEEK(date%+1)); !
IF i%<78 ! Last line
PRINT #2,CHR$(PEEK(date%+2)); ! Only two
ELSE ! Print
PRINT #2,CHR$(0);
ENDIF
NEXT j%
PRINT #2,vorschub$; !
NEXT i%
'
CLOSE #2
RETURN
'
> PROCEDURE hcp_9a
'
p_adr%=XBIOS(3)
puffer$=SPACE$(400)
drucker_init$=CHR$(27)+"*"+CHR$(5)+CHR$(400)+CHR$(1.5625) ! Graphic Mode
'
FOR start%=p_adr% TO p_adr%+79 ! 80 characters
adr%=VARPTR(puffer$)
z%=start%+32000 !
REPEAT ! Vertical
SUB z%,80 ! Next Line
BYTE{adr%}=BYTE{z%} ! Copy Data
INC adr% ! Again
UNTIL z%=start%
LPRINT drucker_init$;puffer$;CHR$(13);CHR$(27);"J";CHR$(24); ! Output Line
NEXT start%
RETURN
'